Field of the Invention
Embodiments of the present invention relate generally to computer graphics processing and, more specifically, to piecewise linear irregular rasterization.
Description of the Related Art
Virtual reality (VR) goggles are an increasingly popular device for achieving a more immersive experience when playing computer games, watching three-dimension (3D) movies, or viewing other 3D media content. VR goggles are mounted to the head of the viewer and block out light from the real-world environment. VR goggles typically include two flat display screens, where one display screen is mounted for viewing by the left-eye and the other display screen is mounted for viewing by the right eye. Game content or other 3D media content is transmitted to the two display screens so that the viewer can see the 3D content when wearing the VR goggles. Because the two display screens are mounted some distance in front of the eyes of the viewer, the display screens, by themselves, cannot provide peripheral content to the viewer. In other words, the viewer sees content in front of the eyes, but does not see content above, below, or to the sides of the two display screens.
Consequently, VR goggles also include a non-linear distortion lens in front of each display screen. The distortion lens causes content near a particular location, such as the center, of the display screen to optically converge and causes content near the edges of the display screen to optically diverge. The diverged content is then projected onto the peripheral viewing area of the eyes of the viewer. As a result, the viewer is able to see the 3D content in the periphery of the viewer as well as in front of the viewer, resulting in a more immersive virtual reality experience.
In addition to VR goggles, these techniques are also used for other wide-screen rendering applications, such as curved viewing surfaces that include one or more display screens. Such wide-screen rendering applications include curved high-definition and ultra-high definition display screens for home use and multi-screen tiled displays for industrial applications such as control rooms. In such applications, the viewer-perceived distance between adjacent pixels varies from one portion of the display screen to another, resulting in similar distortion artifacts as those artifacts observed when using VR goggles.
Although non-linear distortion lenses provide the benefit of project content onto the periphery of the view, these distortion lens exhibit the undesirable side effect that objects rendered onto the display screens and projected to the eyes of the viewer are appear to be distorted. One common form of optical distortion is pin-cushion distortion, where the perceived location of a point on an object is closer to the center of the display screen relative to where the point really is located. As a result, objects with straight lines, such as squares and rectangles, appear to have curved edges when viewed via VR goggles. To address this phenomenon, graphics processing units (GPUs) or other processors typically render 3D content intended for viewing with VR goggles by intentionally inducing non-linear barrel distortion, where the perceived location of a point on an object is farther away from the center of the display screen relative to where the point really is located. The induced barrel distortion counteracts the optical pin-cushion distortion, so that the viewer sees undistorted content when wearing VR goggles.
One drawback to the above approach is that content near the center of the display screen is magnified while content near the edges of the display screen are compressed. Consequently, content directly in front of the eyes of the viewer has relatively lower resolution, resulting in loss of detail. In other words, too few pixels are rendered in the center of the display screen relative to the number of rendered pixels needed for a high-quality viewing experience. This loss of detail may be perceived as soft, fuzzy, or blocky video. By contrast, content in the periphery of what the viewer can see has a greater resolution than the resolution needed for high-quality viewing. In other words, more pixels are rendered near the edges of the display screen relative to the number of rendered pixels needed for a high-quality viewing experience, leading to waste of compute resources.
Another drawback to the above approach is that GPUs are usually optimized for rendering content using a linear grid. Because the optical pin-cushion lens distortion is non-linear, ideally, the barrel distortion induced by the GPU during rendering should be non-linear as well. However, rendering using a non-linear grid may result in significantly lower GPU performance relative to rendering using a linear grid.
As the foregoing illustrates, what is needed in the art is more effective approach for rendering of content for VR goggles and other wide-screen rendering applications.